package com.zyl.file.util;

import java.io.IOException;
import java.io.InputStream;

/**
 * 工具类
 */
public class Tools {

    /**
     * 类型转换
     */
    @SuppressWarnings("unchecked")
    public static <T> T cast(Object object) {
        return (T) object;
    }

    /**
     * 获取流的大小（长度）
     */
    public static long getSize(InputStream in) throws IOException {
        long size = 0;
        while (in.read() != -1){
            size++;
        }
        return size;
    }

    /**
     * 按照参数从前往后进行判断，返回第一个不为 null 的参数
     */
    @SafeVarargs
    public static <T> T getNotNull(T... args) {
        for (T t : args){
            if (t != null){
                return t;
            }
        }
        throw new NullPointerException();
    }
}
